home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.validation;
-
- import com.extensibility.xml.SchemaIntf;
- import com.extensibility.xml.dt.DataType;
- import com.extensibility.xml.dt.DataTypeIntf;
- import java.math.BigDecimal;
-
- class DecimalLeafValidator extends DataValidator {
- String validate(SchemaIntf var1, DataType var2, String var3) {
- if (var3.startsWith("+") && !var3.startsWith("+-")) {
- var3 = var3.substring(1);
- }
-
- BigDecimal var4;
- try {
- var4 = new BigDecimal(var3);
- } catch (Exception var7) {
- String var6 = "invalid decimal number";
- return var6;
- }
-
- if (var2.getTypeName() == DataTypeIntf.FIXED144) {
- if (var4.scale() > 4) {
- return "data must have at most 4 decimal digits";
- }
-
- String var5 = var4.toString();
- int var9 = var5.length();
- if (var5.startsWith("-")) {
- --var9;
- }
-
- if (var5.indexOf(".") != -1) {
- --var9;
- }
-
- var9 -= var4.scale();
- if (var9 > 14) {
- return "data must have at most 14 whole digits";
- }
- }
-
- String var8 = ((DataValidator)this).applyDecimalFacets(var1, var2, var4);
- if (var8 == null) {
- var8 = ((DataValidator)this).applyLexicalFacets(var1, var2, var3);
- }
-
- return var8;
- }
- }
-